<?php
// Test CVS
include_once('include/top.php');
require_once 'Excel/reader.php';
error_reporting ( E_ALL ^ E_NOTICE );
$tikuid = fs_get_value('tiku');
//function doimport(){
    /* 设定上传目录 */
    $dest_dir='uploadfilesplace';
 
    /* 检测上传目录是否存在 */
    if( !is_dir($dest_dir) || !is_writeable($dest_dir) )
    {
        die("上传目录 ".$dest_dir." 不存在或无法写入");
    }
 
    /* 设置允许上传文件的类型 */
    $type=array("xls","xlsx");
 
    /* 获取上传文件信息 */
    $upfile=$_FILES['file'];
 //print_r($upfile);
    /* 获取文件后缀名函数 */
    function fileext($filename)
    {
        return substr(strrchr($filename, '.'), 1);
    }
    /* 判断上传文件类型 */
    if( !in_array( strtolower( fileext($upfile['name'] ) ),$type) )
     {
        $text=implode(",",$type);
        echo "对不起，您只能上传以下类型文件: ",$text,"<br>";
     }
     else
     {
        header("Content-Type:text/html;charset=utf-8");
        /* 设置文件名为"日期_文件名" */
        $path=time().$upfile['name'];
        $dest=$dest_dir.'/'.$path;
        /* 移动上传文件到指定文件夹 */
        $state=move_uploaded_file($upfile['tmp_name'],iconv("UTF-8","gb2312", $dest));
        chmod(iconv("UTF-8","gb2312", $dest), 0777);
        if ($state)
        {
//            print("文件上传成功!<br>");
//            print("文件名：".$dest."<br>");
//            print("上传的文件大小：".( round($upfile['size'] / 1024,2) )." KB<br>");
        }
        else
        {
            /* 处理错误信息 */
            switch($upfile['error'])
            {
                case 1 : die("上传文件大小超出 php.ini:upload_max_filesize 限制<br>");
                case 2 : die("上传文件大小超出 MAX_FILE_SIZE 限制<br>");
                case 3 : die("文件仅被部分上传<br>");
                case 4 : die("没有文件被上传<br>");
                case 5 : die("找不到临时文件夹<br>");
                case 6 : die("文件写入失败<br>");
            }
        }
     }
$data = new Spreadsheet_Excel_Reader ();
$data->setOutputEncoding ( 'utf-8' );
$data->read(iconv("UTF-8","gb2312", $dest));


ImportExcelData($data,"nettteach_question",array('q_title','q_option','q_answer','q_type'),false);

/**
 * 将读取到的Excel数据导入到数据库中
 *
 * @access public
 * @param hasColumnHeader	是否包含列头
 * @param columnArray		要插入的列
 * @param tableName 		要插入的表
 * @param batchSize			每次执行插入语句的条数
 * @return bool
 */
function ImportExcelData($data,$tableName,$columnArray,$hasColumnHeader = false, $batchSize = 100){
    global $dest,$teacher_id;
    $tikuid = fs_get_value('tiku');
	// 默认不包含列头，起始行就为1
	$start = 1;
	if($hasColumnHeader){
		// 如果包含列头，跳过列头，起始行为2
		$start = 2;
	}
	// 记录循环次数
	$loop = 0;
	$sql = "";
	// 生成insert语句的前半部分
	// 形式如这种：insert into table_name('field1','field2'...) values
//	$insert_statement = CreateInsertStatement($tableName, $columnArray);
	for($i = $start; $i <= $data->sheets[0]['numRows']; $i++){ // 遍历行
//		$sql .= $insert_statement;
		$sql .= "(";
		for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++){ // 遍历列
			$sql .= "'".trim($data->sheets[0]['cells'][$i][$j])."',";
		}
        $sql = $sql."'".$tikuid."','".$teacher_id."',";
		$sql = trimEnd($sql,",");
		$sql .= "),";
		$loop ++;
		// 当loop值等于batchSize时，执行插入操作
//		if($loop == $batchSize){
//			$res = mysql_query ( $sql );
//			$loop = 0;
//		}
//		echo $sql;
	}
	$sql = trimEnd($sql,",");
    $sql = "insert into nettteach_question(`q_title`,`q_option`,`q_answer`,`q_type`,`q_tiku`,`q_createuid`) value ".$sql.";";
    
    //删除文件
    $myfile= iconv("UTF-8","gb2312", $dest);
   // if (unlink($myfile)) {
//       echo "The file was deleted successfully.", "n";
   // } else {
//       echo "The specified file could not be deleted. Please try again.", "n";
   // }
	// 如果有950条记录，执行了前9个batch，剩余50条也应当执行
	if($loop != 0){
//		echo $sql;
                $res = mysql_query($sql);
                if($res == 1){
                   fs_showmsg("导入成功！");
                }else{
                    fs_showmsg("导入失败，请严格按照模板中的格式");
                }
	}else{
               fs_showmsg("上传文档有问题,请检查后重新导入！");
        }
  
//  if (file_exists($myfile)) {
//    $result=unlink ($myfile);
//    echo $result;
//  }
}

/**
 * 创建插入sql的语句
 *
 * @access public
 * @param $tableName
 * @param $columnArray
 * @return string
 */
function CreateInsertStatement($tableName,$columnArray){
	$sql = "insert into books(";
	foreach ($columnArray as $c){
		$sql .= "".$c.",";
	}
	$sql = trimEnd($sql,",");
	$sql .= ") values";
	return $sql;
}

/**
 * 移除字符串中指定的尾部字符
 *
 * @access public
 * @param str
 * @param strEnd
 * @return string
 */
function trimEnd($str, $strEnd) {
	return substr ( $str, - (strlen ( $strEnd )) ) == $strEnd ? substr ( $str, 0, strlen ( $str ) - strlen ( $strEnd ) ) : $str;
}

// print_r($data);
// print_r($data->formatRecords);
?>
